Fork me on GitHub

nothing but important

春招:

网易现面

一面

  1. 首先项目起手(大概十几分钟,很细节,很现实),你负责什么,哪一块;
    项目结构(手写),大致怎么分包的,比如用到的mvp怎么分的,还有数据库怎么写的,有哪些表
  2. activity的启动模式
  3. 有用过service吗,它能干些什么
  4. handler消息机制
  5. 执行异步任务有哪些方法,有没有了解类似的开源框架
  6. 有没有用过线程池,怎么用的,遇到了什么问题
  7. 有没有熟悉的开源框架,有没有看过源码,具体说一下原理,以及用框架遇到哪些问题,你怎么解决的
  8. android 7.0 8.0 9.0的新特性
  9. 运行时权限在项目中怎么做的
  10. 你怎么学习framework的,学习了什么
  11. startService怎么实现的
  12. 有没有写过自定义View
  13. view事件分发机制,有没有具体用过
  14. 有没有用过动画
  15. 怎么做内存优化的,UI卡顿怎么办,图片压缩怎么做的
  16. 内存泄漏检测工具
  17. 登录密码如何加密的,除了MD5有没有了解过其他的加密方式

二面

  1. 手写堆排序
  2. 内存泄漏场景
  3. fragment底层管理方式,生命周期、onattach为什么在oncreate前面
  4. webview如何与JS交互
  5. surfaceview启动模式
  6. 反射
  7. 注解有没有用过,注解的分类,元注解是什么,作用是什么
  8. 实现一个多级列表,画出类图
  9. 你认为设计模式是什么。实际用过哪些设计模式,单例如何保证线程安全,有哪些方法
  10. 引用分类

腾讯电面+现面

腾讯,唉 面了不知道多少次了,不想分了,列下记得的把

  1. 项目,mvp、mvc、mvvm的区别
  2. 四大组件,你怎么理解activity,onpause、onstop的区别,生命周期
  3. 进程和线程的区别
  4. os对内存管理的方式
  5. jvm内存分区,gc回收算法
  6. 快排思想,时间复杂度(原因),稳定性
  7. 用户点击app图标到app初始化完成,经历了什么
  8. 操作系统如何启动一个进程或者线程
  9. binder工作原理,比如startService
  10. activity与fragment的区别
  11. ANR、内存泄漏检测
  12. 浏览器打开一个网址经历了啥,tcp相关
  13. android webview的webkit与chromium的区别
  14. android 5.0 6.0 之后对系统的优化包括哪些
  15. 归并排序与希尔排序,原理、时间复杂度什么的
  16. thread和runnable的联系和区别
  17. cpu和gpu的数量级有什么区别(???)
  18. arrayList和Vector的区别

小米电面

  1. 项目,opengl
  2. bitmap如何将一张高分辨率的图片加载到内存(不降低分辨率)
  3. 如何检测链表是否有环
  4. 有没有了解音视频方面的播放框架
  5. asyncTask可以并行执行任务?
  6. lruCahe实现,源码
  7. 图片三级缓存怎么做的
  8. 如何实现线程互斥,互斥与同步的区别
  9. String的hashcode,避免hash碰撞的处理
  10. 对安卓的理解(????wtf)
  11. binder的原理,好处、为什么采用binder作为android ipc方式

京东现面

(吐槽下先:最坑京东,没有之一,谨慎选择

  1. activity启动模式,应用场景
  2. fragment生命周期与activity生命周期的互动
  3. view的绘制过程,自定义View的过程
  4. 动画类型,使用动画的是哪个类
  5. context的子类,applicationContex与activity的区别
  6. 如果加载一个透明activity,上一个activity的生命周期变化
  7. activity的窗口层级

爱奇艺电面

  1. 泛型、类型擦除
  2. 为什么有拆箱装箱操作
  3. 类加载,内存模型,垃圾回收
  4. 四大组件有哪些可以不用在manifest中注册
  5. view、window、surface、canvas关系or区别
  6. 线程同步,synchronized,valotile
  7. service与intentservice
  8. handler机制,多个线程的handler绑定同一个looper,其中一个handler发送消息,其他的handler能否接收到消息
  9. binder优点
  10. 抽象类和接口的区别
  11. ANR
  12. 如何查找程序中的死循环
  13. 其他貌似都是项目相关

秋招

秋招因为实习,没怎么投,而且算正常面试的话也只面了一家,最后运气也还不错。

腾讯

可能是岗位的关系,面试中没有太多android相关知识,大部分是四大亡命法典。

  1. Http相关,TCP/UDP,get/post,网络分层,http请求优化,三次握手四次挥手,https。
  2. 进程与线程,虚拟内存,进程同步互斥(pv),进程间通信,线程同步。
  3. 权限修饰符,static关键字,equals/hashcode方法, GC相关
  4. 单例dcl手写及原理说明、单例的作用
  5. Json的好处和坏处
  6. 了解哪些设计模式
  7. 了解哪些第三方框架,okhttp和其他网络请求库的区别。
  8. 还有个挺好的问题:Android中的binder机制更类似于操作系统中哪种IPC方式?…感觉没有特别准确的答案。
  9. 剩下就是些数据结构和算法,就不列了,剑指了解下, ┐( ̄ー ̄)┌ 反正算法这个东西是逃不掉的。
  10. 对称加密/非对称加密,非对称加密为什么不安全。

over

这一年算是结束了,最后也还是实现了一开始的小小愿望。
总之,找工作还是需要运气+积累,慎终如始,则无败事,没准下一个转弯你就会得到你想要的。